Agent based technology has become increasingly important for use with applications designed to interact with a user for performing various computer based tasks in foreground and background modes. Agent software comprises computer programs that are set on behalf of users to perform routine, tedious and time-consuming tasks. To be useful to an individual user, an agent must be personalized to the individual user's goals, habits and preferences. Thus, there exists a substantial requirement for the agent to efficiently and effectively acquire user-specific knowledge from the user and utilize it to perform tasks on behalf of the user.
The concept of agency, or the user of agents, is well established. An agent is a person authorized by another person, typically referred to as a principal, to act on behalf of the principal. In this manner the principal empowers the agent to perform any of the tasks that the principal is unwilling or unable to perform. For example, an insurance agent may handle all of the insurance requirements for a principal, or a talent agent may act on behalf of a performer to arrange concert dates.
With the advent of the computer, a new domain for employing agents has arrived. Significant advances in the realm of expert systems enable computer programs to act on behalf of computer users to perform routine, tedious and other time-consuming tasks. These computer programs are referred to as “software agents.”
Moreover, there has been a recent proliferation of computer and communication networks. These networks permit a user to access vast amounts of information and services without, essentially, any geographical boundaries. Thus, a software agent has a rich environment to perform a large number of tasks on behalf of a user. For example, it is now possible for an agent to make an airline reservation, purchase the ticket, and have the ticket delivered directly to a user. Similarly, an agent could scan the Internet and obtain information ranging from the latest sports or news to a particular graduate thesis in applied physics. Current solutions fail to apply agent technology to existing calendar technology to provide targeted acquisition of background information for a user's upcoming events.
A central issue for developing agents of all types is identifying easily computed features that are either very suggestive of the user's preferences and goals or can somehow be used to constrain the task of the agent. Keyword-based approaches are commonly used. For example, users may be asked to specify keywords to explicitly identify their goals, or keywords and key phrases may be extracted from user data. Collaborative filtering, another technique, involves extending user specified preferences by incorporating those of other users whose preferences overlap. The demographic generalization method involves classifying a user using minimal user input into demographic categories with well-understood preferences. These techniques are all intended to infer as much as possible about a user's goals and preferences based on observable features, while minimizing the need for user input. These web agents have not used physical location as a predictive feature because the locations from which users access the web have largely remained constant—typically their home or office. Moreover, location has not been a particularly easy feature to compute and unambiguously communicate to an agent.
Location has, of course, played a significant role in other areas research. Navigation, most obviously, has relied on the ability to detect and monitor location. Recent work on supporting user mobility in which personalized computing environments follow users to remote locations also rely on knowledge of a user's location. In these cases, however, location is the problem. That is, a vehicle must be guided from one point to another, or a computing environment must be replicated at a remote location. The ParcTab based “location browser”, which displays file directories and runs programs associated with particular rooms in an office, is somewhat similar in its use of location-awareness as a means of capturing the user's context.
However, the explosive growth in the use of laptops and Personal Digital Assistants (PDAs) signals an important change. As we begin to find ourselves bringing our PDAs and laptops everywhere we go, the particular locations we use them will increasingly reflect an important part of our current context. Furthermore, a user's precise location can now be passively and unambiguously obtained by software through the use of Global Positioning System (GPS) receivers. Such receivers are becoming increasingly affordable and compact. Some are now available as PCMCIA cards. In a system in accordance with a preferred embodiment, the user's location is used in a very different way. Rather than defining the problem, the user's location is a crucial piece of data that can be used to inform and constrain the information gathering task. There is now a business and consumer need to enhance the effectiveness of shoppers through the utilization of location information.